// for (let i = 0; i < 5; i++) {
//     console.log(i)
// }
//
// for (var i = 1; i <= 5; i++) {
//     setTimeout(function timer() {
//         console.log(i);
//     }, i * 1000);
// }

// for (var i = 1; i <= 5; i++) {
//     (function (){
//         var j = i
//     setTimeout(function timer() {
//         console.log(j);
//     }, j * 1000);
//     })()
// }

// for (var i = 1; i <=5 ; i++) {
//     (function (j){
//         setTimeout(()=>{
//             console.log(j)
//         },j*1000)
//     })(i)
// }

// 这里i的定义， 如果使用了var， 那么， 就会导致输出不是预期那样
// for (var i = 0; i < 5; i++) {
//     setTimeout(() => {
//         console.log(i)
//     },i*1000)
// }


// for (let i = 0; i <5; i++) {
//     (function (j){
//         setTimeout(() => {
//             console.log(j)
//         },i*1000)
//     })(i)
// }

//
// for (var i = 0; i < 5; i++) {
//     setTimeout(()=>{
//         console.log(i)
//     }, i *1000)
// } // 这里会每隔1s输出一个 5
//
// for (let i = 0; i < 5; i++) {
//     setTimeout(()=>{
//         console.log(i) // 这里会按照预期输出数字
//     }, i*1000)
// }
//
// for (var i = 0; i < 5; i++) {
//     (function (i){
//         setTimeout(()=>{
//             console.log(i)
//         }, i * 1000)
//     })(i)
// }
//
// for (var i = 0; i < 5; i++) {
//     (function (i){
//         setTimeout(()=>{
//             console.log(i)
//             // 这里需要使用1s 2s 3s 4s 这样的时间戳， 不是， 每一个都是1000ms， 这样会和预期不符
//         }, 1000)
//     })(i)
// }


for (let i = 0; i < 5; i++) {
    setTimeout(()=>{
        console.log(i)
    }, 1000)
}
